home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / a_utils / yacc / flexyacc / aflex.lha / aflex / src / aflex.a < prev    next >
Text File  |  1991-05-16  |  4KB  |  111 lines

  1.  
  2. -- TITLE aflex - main program
  3. --
  4. -- AUTHOR: John Self (UCI)
  5. -- DESCRIPTION main subprogram of aflex, calls the major routines in order
  6. -- $Header: /co/ua/self/arcadia/aflex/ada/src/RCS/aflex.a,v 1.11 90/10/15 20:00:40 self Exp Locker: self $ 
  7. --*************************************************************************** 
  8. --                              aflex
  9. --                          version 1.1c
  10. --***************************************************************************
  11. --
  12. --                            Arcadia Project
  13. --               Department of Information and Computer Science
  14. --                        University of California
  15. --                        Irvine, California 92717
  16. --
  17. --    Send requests for aflex information to alex-info@ics.uci.edu
  18. --
  19. --    Send bug reports for aflex to alex-bugs@ics.uci.edu
  20. --
  21. -- Copyright (c) 1990 Regents of the University of California.
  22. -- All rights reserved.
  23. --
  24. -- This software was developed by John Self of the Arcadia project
  25. -- at the University of California, Irvine.
  26. --
  27. -- Redistribution and use in source and binary forms are permitted
  28. -- provided that the above copyright notice and this paragraph are
  29. -- duplicated in all such forms and that any documentation,
  30. -- advertising materials, and other materials related to such
  31. -- distribution and use acknowledge that the software was developed
  32. -- by the University of California, Irvine.  The name of the
  33. -- University may not be used to endorse or promote products derived
  34. -- from this software without specific prior written permission.
  35. -- THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  36. -- IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  37. -- WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  38. --
  39. --    This program is based on the flex program written by Vern Paxson.
  40. --
  41. --    The following is the copyright notice from flex, from which aflex is
  42. --    derived.
  43. --    Copyright (c) 1989 The Regents of the University of California.
  44. --    All rights reserved.
  45. --
  46. --    This code is derived from software contributed to Berkeley by
  47. --    Vern Paxson.
  48. --
  49. --      The United States Government has rights in this work pursuant to
  50. --    contract no. DE-AC03-76SF00098 between the United States Department of
  51. --    Energy and the University of California.
  52. --
  53. --    Redistribution and use in source and binary forms are permitted
  54. --    provided that the above copyright notice and this paragraph are
  55. --    duplicated in all such forms and that any documentation,
  56. --    advertising materials, and other materials related to such
  57. --    distribution and use acknowledge that the software was developed
  58. --    by the University of California, Berkeley.  The name of the
  59. --    University may not be used to endorse or promote products derived
  60. --    from this software without specific prior written permission.
  61. --    THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  62. --    IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  63. --    WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  64. --
  65. --***************************************************************************
  66.  
  67. with MAIN_BODY, DFA, GEN, MISC_DEFS, TEXT_IO, MISC; 
  68. with TSTRING, TEMPLATE_MANAGER, EXTERNAL_FILE_MANAGER; use MISC_DEFS, TEXT_IO, 
  69.   TSTRING, EXTERNAL_FILE_MANAGER; 
  70. function AFLEX return INTEGER is 
  71.     copyright : constant string :=
  72.     "@(#) Copyright (c) 1990 Regents of the University of California.";
  73.         copyright2 : constant string :=
  74.     "All rights reserved.";
  75. begin
  76.   MAIN_BODY.AFLEXINIT; 
  77.  
  78.   MAIN_BODY.READIN; 
  79.  
  80.   if (SYNTAXERROR) then 
  81.     MAIN_BODY.AFLEXEND(1); 
  82.   end if; 
  83.  
  84.   if (PERFORMANCE_REPORT) then 
  85.     if (INTERACTIVE) then 
  86.       TEXT_IO.PUT_LINE(STANDARD_ERROR, 
  87.         "-I (interactive) entails a minor performance penalty"); 
  88.     end if; 
  89.  
  90.  
  91.   end if; 
  92.  
  93.   if (VARIABLE_TRAILING_CONTEXT_RULES) then 
  94.     MISC.AFLEXERROR("can't handle variable trailing context rules"); 
  95.   end if; 
  96.  
  97.   -- convert the ndfa to a dfa
  98.   DFA.NTOD; 
  99.  
  100.   -- generate the Ada state transition tables from the DFA
  101.   GEN.MAKE_TABLES; 
  102.  
  103.   TEMPLATE_MANAGER.GENERATE_IO_FILE; 
  104.   TEMPLATE_MANAGER.GENERATE_DFA_FILE; 
  105.   MAIN_BODY.AFLEXEND(0); 
  106.   return 0; 
  107. exception
  108.   when MAIN_BODY.AFLEX_TERMINATE => 
  109.     return MAIN_BODY.TERMINATION_STATUS; 
  110. end AFLEX; 
  111.